Through a customer relationship management (CRM) system, clients may be provided with resources to manage a variety of customer centric business processes, such as sales opportunities, product marketing, service calls, project management, and so forth. One traditional technique for management of business processes involves using transactional databases in which various entities such as contacts, customers, products, appointments, email, and so forth are modeled using different tables for different entities. Interdependencies between different tables can be achieved by creating joins between the tables. This approach, although effective for a relatively simple set of entities, can make it difficult to implement more complex entity relationships. Moreover, storing entities via different tables causes duplication of fields for common attributes and can lead to proliferation of table joins because similarities between entities are not accounted for in the database structure.